package test.serverframe.armc.server.manager.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import test.serverframe.armc.server.manager.controller.vo.InvokeDetailVo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.microcore.entity.InvokeTrigger;


/**
 * @Descripttion 任务调度
 * @Author LSY
 * @Date 2018/10/10 11:20
 **/
@ApiModel("任务调度")
public class TaskInvoke implements Serializable {

	private static final long serialVersionUID = 1L;

	// 任务调度id
    @ApiModelProperty("任务调度id")
    private String taskInvokeId;

    @ApiModelProperty(value = "类名", hidden = true)
    private String className;

    @ApiModelProperty(value = "方法名", hidden = true)
    private String methodName;

    // 调度名称
    @ApiModelProperty("调度名称")
    private String invokeName;

    // 备注
    @ApiModelProperty("备注")
    private String remark;

    // 状态
    @ApiModelProperty("状态（启用、禁用）")
    private Integer status;

    // 是否可用
    @ApiModelProperty("是否可用（删除）")
    private Boolean isUsed;
    
    @ApiModelProperty(value = "执行失败的策略（0：继续执行，1：停止执行，2：重新执行）")
    private String failedStrategy;

    // 任务调度id集合
    @ApiModelProperty(value = "任务调度id集合，删除时使用", hidden = true)
    private List<String> taskInvokeIds;

    // 任务id
    @ApiModelProperty(value = "任务id，新增、修改时使用", hidden = true)
    private List<String> taskIds;

    // 任务关联任务调度集合
    //@JsonIgnore
    @ApiModelProperty(value = "任务关联任务调度集合", hidden = true)
    private List<TaskEnterInvoke> taskEnterInvokes;

    // 任务对象集合
    @ApiModelProperty(value = "任务对象集合，用于分页查询赋值给任务调度，修改和查看详情时直接获取", hidden = false)
    private List<Task> tasks;

    //调度修改创建时间
    @ApiModelProperty(value="调度修改创建时间",hidden = true)
    private Date updataTime;
    
    @ApiModelProperty(value = "调度标签集合",required = false)
    private List<Tag> tags;
    
    private List<InvokeTrigger> triggers;
    
    private String nodeArr;
    
    //是否支持并发，1：支持，0：不支持
    private boolean isConcurrent;
    
    @ApiModelProperty(value = "调度执行计划数据")
    private  String executePlanData;

    public String getExecutePlanData() {
        return executePlanData;
    }

    public void setExecutePlanData(String executePlanData) {
        this.executePlanData = executePlanData;
    }

    public List<Tag> getTags() {
        return tags;
    }

    public void setTags(List<Tag> tags) {
        this.tags = tags;
    }

    public Date getUpdataTime() {
        return updataTime;
    }

    public void setUpdataTime(Date updataTime) {
        this.updataTime = updataTime;
    }

    private List<InvokeDetailVo> taskVoList;


    public String getTaskInvokeId() {
        return taskInvokeId;
    }

    public void setTaskInvokeId(String taskInvokeId) {
        this.taskInvokeId = taskInvokeId == null ? null : taskInvokeId.trim();
    }

    public String getInvokeName() {
        return invokeName;
    }

    public void setInvokeName(String invokeName) {
        this.invokeName = invokeName == null ? null : invokeName.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Boolean getUsed() {
        return isUsed;
    }

    public void setUsed(Boolean used) {
        isUsed = used;
    }

    public List<String> getTaskInvokeIds() {
        return taskInvokeIds;
    }

    public void setTaskInvokeIds(List<String> taskInvokeIds) {
        this.taskInvokeIds = taskInvokeIds;
    }

    public List<String> getTaskIds() {
        return taskIds;
    }

    public void setTaskIds(List<String> taskIds) {
        this.taskIds = taskIds;
    }

    public List<TaskEnterInvoke> getTaskEnterInvokes() {
        return taskEnterInvokes;
    }

    public void setTaskEnterInvokes(List<TaskEnterInvoke> taskEnterInvokes) {
        this.taskEnterInvokes = taskEnterInvokes;
    }

    public List<Task> getTasks() {
        return tasks;
    }

    public void setTasks(List<Task> tasks) {
        this.tasks = tasks;
    }

	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public String getMethodName() {
		return methodName;
	}

	public void setMethodName(String methodName) {
		this.methodName = methodName;
	}

	public List<InvokeDetailVo> getTaskVoList() {
		return taskVoList;
	}

	public void setTaskVoList(List<InvokeDetailVo> taskVoList) {
		this.taskVoList = taskVoList;
	}

	public Boolean getIsUsed() {
		return isUsed;
	}

	public void setIsUsed(Boolean isUsed) {
		this.isUsed = isUsed;
	}

	public String getFailedStrategy() {
		return failedStrategy;
	}

	public void setFailedStrategy(String failedStrategy) {
		this.failedStrategy = failedStrategy;
	}

	public Boolean isConcurrent() {
		return isConcurrent;
	}

	public void setConcurrent(boolean isConcurrent) {
		this.isConcurrent = isConcurrent;
	}

	public List<InvokeTrigger> getTriggers() {
		return triggers;
	}

	public void setTriggers(List<InvokeTrigger> triggers) {
		this.triggers = triggers;
	}

	public String getNodeArr() {
		return nodeArr;
	}

	public void setNodeArr(String nodeArr) {
		this.nodeArr = nodeArr;
	}


}
